package com.es.easystoragesimulatedata.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 运行数据模型
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "运行数据模型")
public class OperationData {
    
    @JsonProperty("date")
    @Schema(description = "日期", example = "2025-08-20")
    private String date;
    
    // 第一次充放电循环数据
    @JsonProperty("firstCycleChargeTime")
    @Schema(description = "第一次充电时间段", example = "02:30-06:30")
    private String firstCycleChargeTime;
    
    @JsonProperty("firstCycleChargeTargetSOC")
    @Schema(description = "第一次充电目标SOC", example = "85.5")
    private Double firstCycleChargeTargetSOC;
    
    @JsonProperty("firstCycleChargeEnergy")
    @Schema(description = "第一次充电能量", example = "1250.8")
    private Double firstCycleChargeEnergy;
    
    @JsonProperty("firstCycleDischargeTime")
    @Schema(description = "第一次放电时间段", example = "18:00-22:00")
    private String firstCycleDischargeTime;
    
    @JsonProperty("firstCycleDischargeTargetSOC")
    @Schema(description = "第一次放电目标SOC", example = "25.2")
    private Double firstCycleDischargeTargetSOC;
    
    @JsonProperty("firstCycleDischargeEnergy")
    @Schema(description = "第一次放电能量", example = "1180.3")
    private Double firstCycleDischargeEnergy;
    
    // 第二次充放电循环数据
    @JsonProperty("secondCycleChargeTime")
    @Schema(description = "第二次充电时间段", example = "23:00-03:00")
    private String secondCycleChargeTime;
    
    @JsonProperty("secondCycleChargeTargetSOC")
    @Schema(description = "第二次充电目标SOC", example = "90.1")
    private Double secondCycleChargeTargetSOC;
    
    @JsonProperty("secondCycleChargeEnergy")
    @Schema(description = "第二次充电能量", example = "1320.5")
    private Double secondCycleChargeEnergy;
    
    @JsonProperty("secondCycleDischargeTime")
    @Schema(description = "第二次放电时间段", example = "07:00-11:00")
    private String secondCycleDischargeTime;
    
    @JsonProperty("secondCycleDischargeTargetSOC")
    @Schema(description = "第二次放电目标SOC", example = "20.8")
    private Double secondCycleDischargeTargetSOC;
    
    @JsonProperty("secondCycleDischargeEnergy")
    @Schema(description = "第二次放电能量", example = "1250.2")
    private Double secondCycleDischargeEnergy;
    
    // 数据分析数据
    @JsonProperty("dataAnalysisEquivalentCycleCount")
    @Schema(description = "等效循环次数", example = "1.85")
    private Double dataAnalysisEquivalentCycleCount;
    
    @JsonProperty("dataAnalysisSystemEfficiency")
    @Schema(description = "系统效率", example = "94.2")
    private Double dataAnalysisSystemEfficiency;
    
    @JsonProperty("dataAnalysisRevenue")
    @Schema(description = "收入", example = "2850.6")
    private Double dataAnalysisRevenue;
}
